ARP-Scan
/etc/hosts
Nmap wurde verwendet, um offene Ports und laufende Dienste auf dem Zielsystem zu identifizieren. Port 22 (SSH) und Port 80 (HTTP) sind offen. Der Header `http-generator: Drupal 7` deutet auf eine Drupal 7-Installation hin.
Empfehlung:
Die Apache-Version ist nicht näher spezifiziert, sollte aber auf dem neuesten Stand gehalten werden. Die Drupal 7-Installation sollte ebenfalls auf dem neuesten Stand gehalten werden, da Drupal 7 das End-of-Life erreicht hat und keine Sicherheitsupdates mehr erhält.
Nikto hat das Ziel auf bekannte Schwachstellen untersucht. Es wurde bestätigt, dass es sich um eine Drupal 7-Installation handelt. Es wurden verschiedene Dateien gefunden, die Informationen über das System liefern könnten, darunter `robots.txt`, `web.config`, `INSTALL.txt`, `LICENSE.txt`, `xmlrpc.php` und `icons/README`.
Empfehlung:
Die gefundenen Dateien sollten manuell überprüft werden, um weitere Informationen über das System zu erhalten. Die Drupal-Installation sollte auf dem neuesten Stand gehalten werden. Da Drupal 7 das End-of-Life erreicht hat, sollte ein Upgrade auf eine neuere Version in Betracht gezogen werden.
Gobuster wurde verwendet, um versteckte Dateien und Verzeichnisse auf dem Webserver zu finden. Die Ergebnisse bestätigen die Drupal 7-Installation und liefern weitere Informationen über die Struktur der Website.
Die Datei `robots.txt` enthält eine Liste von Verzeichnissen und Dateien, die von Suchmaschinen-Crawlern nicht indiziert werden sollen. Dies kann nützlich sein, um sensible Bereiche der Website zu identifizieren.
Empfehlung:
Die Einträge in der `robots.txt`-Datei sollten überprüft werden, um sicherzustellen, dass keine sensiblen Bereiche versehentlich offengelegt werden.
Der Zugriff auf das Administrationspanel ist ohne Anmeldung nicht möglich.
Hydra wurde verwendet, um eine Brute-Force-Attacke auf das Drupal-Login-Formular durchzuführen. Es wurden verschiedene Passwörter aus der Rockyou-Wordlist ausprobiert, aber keines war erfolgreich. Die Option `http-post-form` wurde verwendet, um die Parameter für das Login-Formular anzugeben. Die Fehlermeldung "Sorry, unrecognized username or password" wurde verwendet, um ungültige Anmeldeversuche zu identifizieren.
Analyse:
Die Brute-Force-Attacke war nicht erfolgreich, was darauf hindeutet, dass der Benutzername `admin` möglicherweise nicht existiert oder ein starkes Passwort verwendet wird. Es ist auch möglich, dass die Drupal-Installation über Sicherheitsmaßnahmen verfügt, um Brute-Force-Attacken zu verhindern.
Empfehlung:
Es sollten weitere Techniken zur Identifizierung gültiger Benutzernamen und Passwörter angewendet werden. Es sollte geprüft werden, ob die Drupal-Installation anfällig für Account-Enumeration-Schwachstellen ist.
Die Datei `/home/ccat/Downloads/sql.sql` enthält einen HTTP-Request, der zum Testen auf SQL-Injection-Schwachstellen verwendet werden soll. Der Request versucht, sich mit dem Benutzernamen `admin` und dem Passwort `admin11111` anzumelden.
SQLmap wurde verwendet, um das Zielsystem auf SQL-Injection-Schwachstellen zu testen. Die Ergebnisse deuten darauf hin, dass es zwar eine SQL-Injection-Schwachstelle gibt, aber es aufgrund von Berechtigungsproblemen oder anderen Einschränkungen nicht möglich ist, Datenbanknamen oder Tabellen abzurufen. Die vielen HTTP 500-Fehler deuten auf Probleme mit dem Zielsystem hin.
SQLmap wurde erneut verwendet, um das Zielsystem auf SQL-Injection-Schwachstellen zu testen. Diesmal konnten die Datenbanknamen `d7db` und `information_schema` erfolgreich abgerufen werden.
SQLmap wurde verwendet, um die Tabellen in der Datenbank `d7db` aufzulisten. Es wurden zahlreiche Tabellen gefunden, was die Komplexität der Drupal-Installation verdeutlicht.
SQLmap wurde verwendet, um die Tabelle `users` in der Datenbank `d7db` auszulesen. Es wurden die Spalten und die zugehörigen Daten erfolgreich extrahiert. Die Passworthashes der Benutzer `admin` und `john` wurden gefunden.
Analyse:
Die extrahierten Passworthashes verwenden das Drupal 7-Hash-Format, das als relativ schwach gilt. Es ist wahrscheinlich, dass diese Passwörter mit einem geeigneten Tool geknackt werden können.
Empfehlung:
Die extrahierten Passworthashes sollten mit einem Tool wie John the Ripper oder Hashcat geknackt werden.
Das Metasploit Framework wurde verwendet, um SSH-Benutzernamen auf dem Zielsystem aufzuzählen. Das Modul `auxiliary/scanner/ssh/ssh_enumusers` wurde verwendet, um Benutzernamen aus der Xato-Net-Benutzernamenliste aufzuzählen.
Die Passworthashes der Benutzer wurden extrahiert.
Mit John the Ripper wurde versucht, die Passworthashes der Benutzer zu knacken. Das Passwort `turtle` wurde für den Benutzer `admin` gefunden.
Aufruf des john profils
Durch Ausnutzung der SQL-Injection-Schwachstelle und des PHP-Filters konnte eine Reverse Shell als Benutzer www-data gestartet werden.
Dieser Proof of Concept demonstriert, wie die aktivierte PHP-Filter-Module und die manipulierten Webformulare genutzt werden können, um eine Reverse Shell als Benutzer `www-data` zu erhalten.
Nach erfolgreicher Ausführung des Cronjobs sollte eine Reverse Shell auf dem Angreifer-System gestartet werden.
Die Ausgabe des `id`-Befehls zeigt, dass die Shell als Root ausgeführt wird.
Die Möglichkeit, Cronjobs zu manipulieren, stellt ein erhebliches Sicherheitsrisiko dar, da es einem Angreifer ermöglicht, beliebigen Code als Root auszuführen.
Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` sucht nach Dateien mit dem gesetzten SUID-Bit. Die Ausgabe zeigt eine Liste von Dateien, die potenziell für eine Privilegieneskalation ausgenutzt werden könnten.
Das Verzeichnis `/home/dc8user/` wurde gefunden.
Der Benutzer `www-data` hat keine Leseberechtigung für die Datei `.google_authenticator`. Diese Datei könnte Informationen für die Zwei-Faktor-Authentifizierung enthalten.
Die Datei `/etc/passwd` wurde ausgelesen, um die vorhandenen Benutzer auf dem System zu identifizieren.
Der Befehl `find / -perm -u=s -type f 2>/dev/null` sucht nach Dateien mit dem gesetzten SUID-Bit. Die Ausgabe zeigt eine Liste von Dateien, die potenziell für eine Privilegieneskalation ausgenutzt werden könnten. Besonders interessant ist die Datei `/usr/sbin/exim4`, da es für Exim verschiedene bekannte Schwachstellen gibt.
Es wurde nach Exploits für die Exim-Version 4.89 gesucht. Die Suchergebnisse deuten auf die Schwachstelle CVE-2019-10149 hin, die als "The Return of the WIZard" bezeichnet wird und eine Remote Code Execution ermöglicht.
Das Exploit-Skript `raw.sh` wurde heruntergeladen und ausgeführt. Das Skript versucht, die Privilegieneskalation über die Schwachstelle CVE-2019-10149 in Exim durchzuführen. Die Ausgabe zeigt jedoch, dass die Ausführung als Benutzer `www-data` erfolgt ist und nicht als Root.
Dieser Proof of Concept demonstriert, wie die aktivierte PHP-Filter-Module und die manipulierten Webformulare genutzt werden können, um eine Reverse Shell als Benutzer `www-data` zu erhalten.
Nach erfolgreicher Ausführung des Cronjobs sollte eine Reverse Shell auf dem Angreifer-System gestartet werden.
Die Ausgabe des `id`-Befehls zeigt, dass die Shell als Root ausgeführt wird.
Die Möglichkeit, Cronjobs zu manipulilieren, stellt ein erhebliches Sicherheitsrisiko dar, da es einem Angreifer ermöglicht, beliebigen Code als Root auszuführen.
888 888 888 888 8888888b. 888 888 888 888 888 o 888 888 888 888 "Y88b 888 888 888 888 888 d8b 888 888 888 888 888 888 888 888 888 888 d888b 888 .d88b. 888 888 888 888 .d88b. 88888b. .d88b. 888 888 888 888 888d88888b888 d8P Y8b 888 888 888 888 d88""88b 888 "88b d8P Y8b 888 888 888 888 88888P Y88888 88888888 888 888 888 888 888 888 888 888 88888888 Y8P Y8P Y8P Y8P 8888P Y8888 Y8b. 888 888 888 .d88P Y88..88P 888 888 Y8b. " " " " 888P Y888 "Y8888 888 888 8888888P" "Y88P" 888 888 "Y8888 888 888 888 888
Hope you enjoyed DC-8. Just wanted to send a big thanks out there to all those
who have provided feedback, and all those who have taken the time to complete these little
challenges.
I'm also sending out an especially big thanks to:
@4nqr34z
@D4mianWayne
@0xmzfr
@theart42
This challenge was largely based on two things:
1. A Tweet that I came across from someone asking about 2FA on a Linux box, and whether it was worthwhile.
2. A suggestion from @theart42
The answer to that question is...
If you enjoyed this CTF, send me a tweet via @DCAU7.
Der Root zugriff war erfolgreich.
Der ARP-Scan zeigt die IP-Adresse und die MAC-Adresse des Zielsystems sowie den Hersteller der Netzwerkkarte. Der Eintrag in der /etc/hosts-Datei ermöglicht die Verwendung des Hostnamens `dc8.vln` anstelle der IP-Adresse. Dies erleichtert die weitere Bearbeitung.